/*
 * CreaCliente.java
 *
 * Created on 23 de febrero de 2006, 7:40
 */
package administrador;

import java.math.RoundingMode;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
import java.sql.*;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Calendar;

/**
 *
 * @author  daniel1
 */
public class CreaCliente extends javax.swing.JFrame {

    String fecha;
    Conexion conexion;
    Facturacion facturaVent;
    NotaCD notaCD;
    Nota_de_Venta notaVenta;
    KardexInOut kardexInOut;
    Vent_Deudas vent_deudas;
    boolean peticionDeFacturacion = false;
    String bandera;
    Usuario user;
    //Nath RedondeoF
    NumberFormat nf = NumberFormat.getNumberInstance();

    /** Creates new form CreaCliente */
    public CreaCliente(Conexion c, String cod, Usuario user) {
        configuroFormat();


        if (cod.equals("P")) {
            cod = "";
            this.user = user;

            peticionDeFacturacion = true;
            conexion = c;
            initComponents();

            txt_cod.setText(cod);
            this.setVisible(true);
            this.setBounds(100, 50, 470, 600);
            fecha = new java.sql.Date(System.currentTimeMillis()).toString();
            lbl_fact.setText(fecha);

            this.setTitle("Nuevo Proveedor");
            //Preparo Presentacion:
            lbl_cedula.setText("RUC/CI:");
            lbl_nombre.setText("EMPRESA/NOM:");
            lbl_apellido.setText("CONTACTO:");
            lbl_direccion.setText("DIRECCION:");
            lbl_telefono.setText("TELEFONO:");
            ck_proveedor.setSelected(true);
            ck_proveedor.setEnabled(false);

            if (cod.equals("")) {
                txt_cod.setEditable(true);
            }

            //Intenta Abrir:
            if (BuscaSiExiste()) {
                llenoDatosCliente();
                bt_registrar.setText("Modificar");
                bt_cuentas.setEnabled(true);
                this.setTitle("Modifica Cliente Existente");
            } else {
                //Lleno con una fecha de Activacion Nueva:
                lbl_fact.setText(fecha);
            }
            ck_proveedor.setSelected(true);
            ck_proveedor.setEnabled(false);
            bandera = "CreaProveedores";
        } else {

            this.user = user;
            conexion = c;
            initComponents();
            txt_cod.setText(cod);
            this.setBounds(50, 50, 470, 600);
            this.setVisible(true);
            fecha = new java.sql.Date(System.currentTimeMillis()).toString();

            //Intenta Abrir:
            if (BuscaSiExiste()) {
                llenoDatosCliente();
            } else {
                //Lleno con una fecha de Activacion Nueva:
                lbl_fact.setText(fecha);
            }

        }

        //Quito el boton de borrado para el Vendedor:
        String priv = user.getPrivilegio();
        if (priv.equals("e")) {

            bt_borrar.setVisible(false);
        }
        //*******************************************



    }

    public CreaCliente(Conexion c, String cod, Facturacion fEnt, Usuario user) {



        configuroFormat();
        this.user = user;
        bandera = "Facturacion";
        peticionDeFacturacion = true;
        facturaVent = fEnt;
        conexion = c;
        initComponents();
        txt_cod.setText(cod);
        this.setVisible(true);
        this.setBounds(100, 50, 470, 600);
        fecha = new java.sql.Date(System.currentTimeMillis()).toString();
        lbl_fact.setText(fecha);

        this.setTitle("Nuevo Cliente");
        //Ya que no es Proveedor:
        ck_proveedor.setSelected(false);
        ck_proveedor.setEnabled(false);


        if (cod.equals("")) {
            txt_cod.setEditable(true);
        }

        //Ya que no es Proveedor:
        ck_proveedor.setSelected(false);
        ck_proveedor.setEnabled(false);

        //Intenta Abrir:
        if (BuscaSiExiste()) {
            facturaVent.muestroDatosUsuario();
            llenoDatosCliente();
            bt_registrar.setText("Modificar");
            bt_cuentas.setEnabled(true);
            this.setTitle("Modifica Cliente Existente");
        } else {
            //Lleno con una fecha de Activacion Nueva:
            lbl_fact.setText(fecha);
        }
    }

    public CreaCliente(Conexion c, String cod, Nota_de_Venta notaVenta, Usuario user) {
        configuroFormat();
        this.user = user;
        bandera = "NotadeVenta";
        peticionDeFacturacion = true;
        this.notaVenta = notaVenta;
        conexion = c;
        initComponents();
        txt_cod.setText(cod);
        this.setVisible(true);
        this.setBounds(100, 50, 470, 600);
        fecha = new java.sql.Date(System.currentTimeMillis()).toString();
        lbl_fact.setText(fecha);

        this.setTitle("Nuevo Cliente");

        if (cod.equals("")) {
            txt_cod.setEditable(true);
        }

        //Ya que no es Proveedor:
        ck_proveedor.setSelected(false);
        ck_proveedor.setEnabled(false);

        //Intenta Abrir:
        if (BuscaSiExiste()) {
            llenoDatosCliente();
            bt_registrar.setText("Modificar");
            bt_cuentas.setEnabled(true);
            this.setTitle("Modifica Cliente Existente");
        } else {
            //Lleno con una fecha de Activacion Nueva:
            lbl_fact.setText(fecha);
        }
    }

    public CreaCliente(Conexion c, String cod, NotaCD fEnt, Usuario user) {
        configuroFormat();
        this.user = user;
        bandera = "NotaCD";
        peticionDeFacturacion = true;
        notaCD = fEnt;
        conexion = c;
        initComponents();
        txt_cod.setText(cod);
        this.setVisible(true);
        this.setBounds(100, 50, 470, 600);
        fecha = new java.sql.Date(System.currentTimeMillis()).toString();
        lbl_fact.setText(fecha);

        this.setTitle("Nuevo Cliente");

        if (cod.equals("")) {
            txt_cod.setEditable(true);
        }

        //Intenta Abrir:
        if (BuscaSiExiste()) {
            llenoDatosCliente();
            bt_registrar.setText("Modificar");
            bt_cuentas.setEnabled(true);
            this.setTitle("Modifica Cliente Existente");
        } else {
            //Lleno con una fecha de Activacion Nueva:
            lbl_fact.setText(fecha);
        }
    }

    public CreaCliente(Conexion c, String cod, KardexInOut fEnt, Usuario user) {
        configuroFormat();
        this.user = user;
        bandera = "KardexInOut";
        peticionDeFacturacion = true;
        kardexInOut = fEnt;
        conexion = c;
        initComponents();
        txt_cod.setText(cod);
        this.setVisible(true);
        this.setBounds(100, 50, 470, 600);
        fecha = new java.sql.Date(System.currentTimeMillis()).toString();
        lbl_fact.setText(fecha);

        this.setTitle("Nuevo Proveedor");
        //Preparo Presentacion:
        lbl_cedula.setText("RUC/CI:");
        lbl_nombre.setText("EMPRESA/NOM:");
        lbl_apellido.setText("CONTACTO:");
        lbl_direccion.setText("DIRECCION:");
        lbl_telefono.setText("TELEFONO:");
        ck_proveedor.setSelected(true);
        ck_proveedor.setEnabled(false);


        if (cod.equals("")) {
            txt_cod.setEditable(true);
        }


        //Intenta Abrir:
        if (BuscaSiExiste()) {
            llenoDatosCliente();
            bt_registrar.setText("Modificar");
            bt_cuentas.setEnabled(true);
            this.setTitle("Modifica Cliente Existente");
        } else {
            //Lleno con una fecha de Activacion Nueva:Nuevo Cliente
            lbl_fact.setText(fecha);
        }
        bandera = "CreaProveedores";
    }

    //Si la ventana es para la creacion de Proveedores
    public CreaCliente(Conexion c, String cod, Vent_Deudas vEnt, Usuario user) {
        configuroFormat();
        this.user = user;
        vent_deudas = vEnt;
        peticionDeFacturacion = true;
        conexion = c;
        initComponents();

        txt_cod.setText(cod);
        this.setVisible(true);
        this.setBounds(100, 50, 470, 600);
        fecha = new java.sql.Date(System.currentTimeMillis()).toString();
        lbl_fact.setText(fecha);

        this.setTitle("Nuevo Proveedor");
        //Preparo Presentacion:
        lbl_cedula.setText("RUC/CI:");
        lbl_nombre.setText("EMPRESA/NOM:");
        lbl_apellido.setText("CONTACTO:");
        lbl_direccion.setText("DIRECCION:");
        lbl_telefono.setText("TELEFONO:");
        ck_proveedor.setSelected(true);
        ck_proveedor.setEnabled(false);

        if (cod.equals("")) {
            txt_cod.setEditable(true);
        }

        //Intenta Abrir:
        if (BuscaSiExiste()) {
            llenoDatosCliente();
            bt_registrar.setText("Modificar");
            bt_cuentas.setEnabled(true);
            this.setTitle("Modifica Cliente Existente");
        } else {
            //Lleno con una fecha de Activacion Nueva:
            lbl_fact.setText(fecha);
        }

        bandera = "CreaProveedores";
    }

    public void configuroFormat() {
        DecimalFormat dec = (DecimalFormat) nf;
        dec.applyPattern("###.##");
        nf.setMaximumFractionDigits(2);
        nf.setRoundingMode(RoundingMode.HALF_UP);
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        bgrupo = new javax.swing.ButtonGroup();
        jPanel1 = new javax.swing.JPanel();
        lbl_cedula = new javax.swing.JLabel();
        txt_cod = new javax.swing.JTextField();
        txt_nom = new javax.swing.JTextField();
        lbl_nombre = new javax.swing.JLabel();
        lbl_apellido = new javax.swing.JLabel();
        txt_ape = new javax.swing.JTextField();
        lbl_direccion = new javax.swing.JLabel();
        txt_dir = new javax.swing.JTextField();
        lbl_telefono = new javax.swing.JLabel();
        txt_tel = new javax.swing.JTextField();
        bt_registrar = new javax.swing.JButton();
        jButton1 = new javax.swing.JButton();
        bt_borrar = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();
        bt_new = new javax.swing.JButton();
        jPanel2 = new javax.swing.JPanel();
        txt_clave = new javax.swing.JTextField();
        jLabel6 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();
        r1 = new javax.swing.JRadioButton();
        r2 = new javax.swing.JRadioButton();
        cb_civ = new javax.swing.JComboBox();
        jLabel8 = new javax.swing.JLabel();
        txt_ocu = new javax.swing.JTextField();
        jLabel9 = new javax.swing.JLabel();
        txt_cel = new javax.swing.JTextField();
        jLabel10 = new javax.swing.JLabel();
        txt_pai = new javax.swing.JTextField();
        jLabel11 = new javax.swing.JLabel();
        txt_pro = new javax.swing.JTextField();
        jLabel12 = new javax.swing.JLabel();
        txt_ciu = new javax.swing.JTextField();
        jLabel13 = new javax.swing.JLabel();
        txt_sec = new javax.swing.JTextField();
        jLabel14 = new javax.swing.JLabel();
        txt_ano = new javax.swing.JTextField();
        txt_mes = new javax.swing.JTextField();
        txt_dia = new javax.swing.JTextField();
        jLabel15 = new javax.swing.JLabel();
        jLabel16 = new javax.swing.JLabel();
        lbl_fact = new javax.swing.JLabel();
        jLabel19 = new javax.swing.JLabel();
        jLabel17 = new javax.swing.JLabel();
        txt_email = new javax.swing.JTextField();
        jLabel20 = new javax.swing.JLabel();
        txt_deuda = new javax.swing.JTextField();
        bt_cuentas = new javax.swing.JButton();
        jPanel3 = new javax.swing.JPanel();
        ck_proveedor = new javax.swing.JCheckBox();
        txt_sep = new javax.swing.JTextField();
        jButton2 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        getContentPane().setLayout(null);

        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Datos Obligatorios", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, null, new java.awt.Color(102, 102, 102)));
        jPanel1.setLayout(null);

        lbl_cedula.setText("Cedula");
        jPanel1.add(lbl_cedula);
        lbl_cedula.setBounds(10, 40, 80, 20);

        txt_cod.setEditable(false);
        txt_cod.setNextFocusableComponent(txt_nom);
        txt_cod.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                txt_codKeyTyped(evt);
            }
        });
        jPanel1.add(txt_cod);
        txt_cod.setBounds(90, 40, 110, 20);

        txt_nom.setNextFocusableComponent(txt_ape);
        jPanel1.add(txt_nom);
        txt_nom.setBounds(90, 70, 190, 20);

        lbl_nombre.setText("Nombre");
        jPanel1.add(lbl_nombre);
        lbl_nombre.setBounds(10, 70, 80, 20);

        lbl_apellido.setText("Apellido");
        jPanel1.add(lbl_apellido);
        lbl_apellido.setBounds(10, 100, 80, 20);

        txt_ape.setNextFocusableComponent(txt_dir);
        jPanel1.add(txt_ape);
        txt_ape.setBounds(90, 100, 190, 20);

        lbl_direccion.setText("Direccion");
        jPanel1.add(lbl_direccion);
        lbl_direccion.setBounds(10, 130, 80, 20);

        txt_dir.setNextFocusableComponent(txt_tel);
        jPanel1.add(txt_dir);
        txt_dir.setBounds(90, 130, 190, 20);

        lbl_telefono.setText("Telefono");
        jPanel1.add(lbl_telefono);
        lbl_telefono.setBounds(10, 160, 80, 20);

        txt_tel.setNextFocusableComponent(bt_registrar);
        txt_tel.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyTyped(java.awt.event.KeyEvent evt) {
                txt_telKeyTyped(evt);
            }
        });
        jPanel1.add(txt_tel);
        txt_tel.setBounds(90, 160, 190, 20);

        bt_registrar.setFont(new java.awt.Font("Tahoma", 1, 11));
        bt_registrar.setForeground(new java.awt.Color(0, 102, 51));
        bt_registrar.setText("Registrar");
        bt_registrar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bt_registrarActionPerformed(evt);
            }
        });
        jPanel1.add(bt_registrar);
        bt_registrar.setBounds(300, 60, 120, 30);

        jButton1.setText("Buscar");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
        jPanel1.add(jButton1);
        jButton1.setBounds(210, 40, 70, 20);

        bt_borrar.setForeground(new java.awt.Color(153, 51, 0));
        bt_borrar.setText("Borrar");
        bt_borrar.setEnabled(false);
        bt_borrar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bt_borrarActionPerformed(evt);
            }
        });
        jPanel1.add(bt_borrar);
        bt_borrar.setBounds(300, 160, 120, 20);

        jButton3.setFont(new java.awt.Font("Tahoma", 1, 11));
        jButton3.setForeground(new java.awt.Color(0, 51, 153));
        jButton3.setText("Llenar Factura");
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });
        jPanel1.add(jButton3);
        jButton3.setBounds(300, 30, 120, 30);

        bt_new.setFont(new java.awt.Font("Tahoma", 1, 11));
        bt_new.setText("Nuevo Cliente");
        bt_new.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bt_newActionPerformed(evt);
            }
        });
        jPanel1.add(bt_new);
        bt_new.setBounds(300, 130, 120, 30);

        getContentPane().add(jPanel1);
        jPanel1.setBounds(10, 10, 440, 200);

        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Opcionales", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, null, new java.awt.Color(153, 153, 153)));
        jPanel2.setLayout(null);

        txt_clave.setNextFocusableComponent(txt_ano);
        jPanel2.add(txt_clave);
        txt_clave.setBounds(90, 20, 110, 20);

        jLabel6.setText("Clave");
        jPanel2.add(jLabel6);
        jLabel6.setBounds(30, 20, 50, 20);

        jLabel7.setText("Estado Civil");
        jPanel2.add(jLabel7);
        jLabel7.setBounds(30, 80, 60, 20);

        bgrupo.add(r1);
        r1.setSelected(true);
        r1.setText("Masculino");
        r1.setNextFocusableComponent(txt_email);
        r1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                r1ActionPerformed(evt);
            }
        });
        jPanel2.add(r1);
        r1.setBounds(220, 80, 71, 23);

        bgrupo.add(r2);
        r2.setText("Femenino");
        r2.setNextFocusableComponent(txt_email);
        jPanel2.add(r2);
        r2.setBounds(310, 80, 71, 23);

        cb_civ.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "casado", "soltero" }));
        cb_civ.setNextFocusableComponent(r1);
        jPanel2.add(cb_civ);
        cb_civ.setBounds(90, 80, 110, 20);

        jLabel8.setText("Ocupacion");
        jPanel2.add(jLabel8);
        jLabel8.setBounds(30, 140, 70, 20);

        txt_ocu.setNextFocusableComponent(txt_pai);
        jPanel2.add(txt_ocu);
        txt_ocu.setBounds(90, 140, 300, 20);

        jLabel9.setText("Celular");
        jPanel2.add(jLabel9);
        jLabel9.setBounds(220, 110, 60, 20);

        txt_cel.setNextFocusableComponent(txt_ocu);
        txt_cel.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txt_celActionPerformed(evt);
            }
        });
        jPanel2.add(txt_cel);
        txt_cel.setBounds(280, 110, 110, 20);

        jLabel10.setText("Pais");
        jPanel2.add(jLabel10);
        jLabel10.setBounds(30, 170, 19, 14);

        txt_pai.setNextFocusableComponent(txt_pro);
        jPanel2.add(txt_pai);
        txt_pai.setBounds(90, 170, 110, 20);

        jLabel11.setText("Provincia");
        jPanel2.add(jLabel11);
        jLabel11.setBounds(220, 170, 60, 20);

        txt_pro.setNextFocusableComponent(txt_ciu);
        jPanel2.add(txt_pro);
        txt_pro.setBounds(280, 170, 110, 20);

        jLabel12.setText("Ciudad");
        jPanel2.add(jLabel12);
        jLabel12.setBounds(30, 200, 33, 14);

        txt_ciu.setNextFocusableComponent(txt_sec);
        jPanel2.add(txt_ciu);
        txt_ciu.setBounds(90, 200, 110, 20);

        jLabel13.setText("Sector");
        jPanel2.add(jLabel13);
        jLabel13.setBounds(220, 200, 60, 20);

        txt_sec.setNextFocusableComponent(txt_ocu);
        jPanel2.add(txt_sec);
        txt_sec.setBounds(280, 200, 110, 20);

        jLabel14.setText("Fecha Nacimiento");
        jPanel2.add(jLabel14);
        jLabel14.setBounds(30, 50, 100, 20);

        txt_ano.setText("año");
        txt_ano.setNextFocusableComponent(txt_mes);
        txt_ano.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txt_anoActionPerformed(evt);
            }
        });
        jPanel2.add(txt_ano);
        txt_ano.setBounds(130, 50, 60, 20);

        txt_mes.setText("mes");
        txt_mes.setNextFocusableComponent(txt_dia);
        jPanel2.add(txt_mes);
        txt_mes.setBounds(210, 50, 40, 20);

        txt_dia.setText("dia");
        txt_dia.setNextFocusableComponent(cb_civ);
        jPanel2.add(txt_dia);
        txt_dia.setBounds(270, 50, 30, 20);

        jLabel15.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel15.setText("-");
        jPanel2.add(jLabel15);
        jLabel15.setBounds(190, 50, 20, 20);

        jLabel16.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jLabel16.setText("-");
        jPanel2.add(jLabel16);
        jLabel16.setBounds(250, 50, 20, 20);

        lbl_fact.setFont(new java.awt.Font("Tahoma", 0, 12));
        lbl_fact.setForeground(new java.awt.Color(153, 153, 153));
        lbl_fact.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        jPanel2.add(lbl_fact);
        lbl_fact.setBounds(330, 10, 90, 40);

        jLabel19.setText("Fecha  Activacion:");
        jPanel2.add(jLabel19);
        jLabel19.setBounds(250, 20, 100, 20);

        jLabel17.setText("E-mail");
        jPanel2.add(jLabel17);
        jLabel17.setBounds(30, 110, 60, 20);

        txt_email.setText("@");
        txt_email.setNextFocusableComponent(txt_cel);
        jPanel2.add(txt_email);
        txt_email.setBounds(90, 110, 100, 20);

        jLabel20.setFont(new java.awt.Font("Tahoma", 1, 11));
        jLabel20.setForeground(new java.awt.Color(153, 51, 0));
        jLabel20.setText("   Saldo Deudor: ");
        jPanel2.add(jLabel20);
        jLabel20.setBounds(330, 230, 100, 14);

        txt_deuda.setEditable(false);
        txt_deuda.setFont(new java.awt.Font("Californian FB", 1, 18));
        txt_deuda.setForeground(new java.awt.Color(153, 51, 0));
        txt_deuda.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
        txt_deuda.setText("0.00");
        txt_deuda.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                txt_deudaActionPerformed(evt);
            }
        });
        jPanel2.add(txt_deuda);
        txt_deuda.setBounds(210, 280, 110, 30);

        bt_cuentas.setText("Deudas");
        bt_cuentas.setEnabled(false);
        bt_cuentas.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                bt_cuentasActionPerformed(evt);
            }
        });
        jPanel2.add(bt_cuentas);
        bt_cuentas.setBounds(330, 280, 100, 30);

        jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder("Es Proveedor ?"));
        jPanel3.setLayout(null);

        ck_proveedor.setFont(new java.awt.Font("Tahoma", 0, 14));
        ck_proveedor.setText("Proveedor");
        ck_proveedor.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ck_proveedorActionPerformed(evt);
            }
        });
        jPanel3.add(ck_proveedor);
        ck_proveedor.setBounds(50, 20, 100, 25);

        jPanel2.add(jPanel3);
        jPanel3.setBounds(30, 250, 170, 60);

        txt_sep.setEditable(false);
        txt_sep.setFont(new java.awt.Font("Californian FB", 1, 18));
        txt_sep.setForeground(new java.awt.Color(0, 102, 102));
        txt_sep.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
        txt_sep.setText("0.00");
        jPanel2.add(txt_sep);
        txt_sep.setBounds(210, 250, 110, 30);

        jButton2.setText("Separados");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });
        jPanel2.add(jButton2);
        jButton2.setBounds(330, 250, 100, 30);

        getContentPane().add(jPanel2);
        jPanel2.setBounds(10, 210, 440, 330);

        pack();
    }// </editor-fold>//GEN-END:initComponents

    public void limpiarNuevo() {
        bt_registrar.setText("Registrar");
        bt_cuentas.setEnabled(false);
        txt_cod.setEnabled(true);
        txt_cod.setEditable(true);
        txt_cod.setText("");
        txt_nom.setText("");
        txt_ape.setText("");
        txt_dir.setText("");
        txt_tel.setText("");
        txt_clave.setText("");
        txt_ano.setText("ano");
        txt_mes.setText("mes");
        txt_dia.setText("dia");
        r1.setSelected(true);
        cb_civ.setSelectedIndex(0);
        txt_email.setText("@");
        txt_cel.setText("");
        txt_ocu.setText("");
        txt_pai.setText("");
        txt_pro.setText("");
        txt_ciu.setText("");
        txt_sec.setText("");
        txt_deuda.setText("");
        txt_sep.setText("0.00");

    }

    private void bt_newActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bt_newActionPerformed
// TODO add your handling code here:
        limpiarNuevo();
    }//GEN-LAST:event_bt_newActionPerformed

    private void bt_borrarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bt_borrarActionPerformed
// TODO add your handling code here:
        //No ESTA PERMITIDO BORRAR CLIENTES ESTA OPCION ESTA DESABILITADA
        //compruebo si el usuario tiene privilegios para borrar
//        if(this.user.privilegio.equals("e")){}else{
//        
//         String id_cliente=txt_cod.getText();
//        
//        if(esCliente(id_cliente)){
//         
//            int opccion=0;
//            opccion=JOptionPane.showConfirmDialog(this,"Seguro Desea Borrar el cliente con la cedula:"+id_cliente+" "+txt_nom.getText(),"Alerta",0);
//            if(opccion==0){
//             conexion.actualizarBase("delete from cliente where cod_cliente like '"+id_cliente+"'");   
//             limpiarNuevo();
//            
//            }
//            
//             
//        }
//        else
//        {
//        JOptionPane.showMessageDialog(this,"Este cliente no ha sido creado Todavia","Informacion",JOptionPane.INFORMATION_MESSAGE);
//        }
//        
//        }
}//GEN-LAST:event_bt_borrarActionPerformed

    public boolean esCliente(String codigo) {
        boolean resp = false;
        ResultSet r;
        r = conexion.consultarBase("select * from cliente where cod_cliente like '" + codigo + "'");
        int filas = conexion.obtenerFilas(r);
        if (filas > 0) {
            resp = true;
        }

        return resp;
    }

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
// TODO add your handling code here:
        String id_cliente = txt_cod.getText();
        if (bandera.equals("Facturacion")) {
            if (esCliente(id_cliente)) {
                facturaVent.txt_id.setText(id_cliente);
                boolean esProveedor = ck_proveedor.isSelected();
                muestraEnFacturacion(esProveedor);
                this.dispose();
            } else {
                JOptionPane.showMessageDialog(this, "Este cliente no ha sido creado Todavia", "Informacion", JOptionPane.INFORMATION_MESSAGE);
            }
        }

        if (bandera.equals("NotaCD")) {
            if (esCliente(id_cliente)) {

                notaCD.txt_id.setText(id_cliente);
                muestraNotaCD();
                this.dispose();
            } else {
                JOptionPane.showMessageDialog(this, "Este cliente no ha sido creado Todavia", "Informacion", JOptionPane.INFORMATION_MESSAGE);
            }
        }
        if (bandera.equals("NotadeVenta")) {
            if (esCliente(id_cliente)) {

                notaVenta.txt_id.setText(id_cliente);
                muestraNotaVenta();
                this.dispose();
            } else {
                JOptionPane.showMessageDialog(this, "Este cliente no ha sido creado Todavia", "Informacion", JOptionPane.INFORMATION_MESSAGE);
            }
        }
        if (bandera.equals("KardexInOut") || bandera.equals("CreaProveedores")) {
            if (esCliente(id_cliente)) {

                kardexInOut.txt_id.setText(id_cliente);
                muestraKardexInOut();
                this.dispose();
            } else {
                JOptionPane.showMessageDialog(this, "Este cliente no ha sido creado Todavia", "Informacion", JOptionPane.INFORMATION_MESSAGE);
            }
        }
    }//GEN-LAST:event_jButton3ActionPerformed

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
// TODO add your handling code here:
        boolean esProveedor = ck_proveedor.isSelected();
        BuscadorCliente bc = new BuscadorCliente(conexion, this, esProveedor);


    }//GEN-LAST:event_jButton1ActionPerformed

    private void txt_celActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txt_celActionPerformed
// TODO add your handling code here:
    }//GEN-LAST:event_txt_celActionPerformed

    private void bt_registrarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bt_registrarActionPerformed
// TODO add your handling code here:


        //Valido que llenen todos los datos:
        if (txt_nom.getText().equals("") || txt_ape.getText().equals("") || txt_dir.getText().equals("") || txt_tel.getText().equals("")) {
            JOptionPane.showMessageDialog(this, "Los datos del Cliente no han sido llenados Correctamente", "Informacion", JOptionPane.INFORMATION_MESSAGE);
        } else {
            //Tomo los Datos para la insercion:
            String sexo;
            if (r1.isSelected()) {
                sexo = "masculino";
            } else {
                sexo = "femenino";
            }

            int ec = cb_civ.getSelectedIndex();
            String estado;
            if (ec == 1) {
                estado = "soltero";
            } else {
                estado = "casado";
            }

            String clave = txt_clave.getText();
            clave = clave.replaceAll(" ", "");

            //Controla el Ingreso de Claves:
            if (clave.equals("")) {
                clave = "null";
            } else {
            }

            //Saco la Fecha Nacimiento
            String fechaNac = txt_ano.getText() + "-" + txt_mes.getText() + "-" + txt_dia.getText();
            fechaNac = fechaNac.replaceAll(" ", "");
            //System.out.println("La fecha de nacimiento es:"+fechaNac);
            try {

                java.sql.Date fecha1;
                String qfe = txt_ano.getText() + "-" + txt_mes.getText() + "-" + txt_dia.getText();
                fecha1 = java.sql.Date.valueOf(fechaNac);

                fechaNac = fecha1.toString();
                ////System.out.println("Fecha Valida:"+fechaNac);
            } catch (Exception e) {
                fechaNac = "2000-01-01";
               //System.out.println("Fecha NO Valida:" + fechaNac);
            };
            //Valido Membresia
            String membresia;
            if (clave == null) {
                membresia = "false";
            } else {
                membresia = "true";
            }
            //Registro si estos datos coresponden a un Proovedor:
            boolean esProveedor = ck_proveedor.isSelected();





            //Realizo la insercion del Cliente si es el caso:

            if (bt_registrar.getText().equals("Registrar")) {

                if (!conexion.insertarDatosR("insert into cliente values('" + txt_cod.getText() + "','" + clave + "','" + txt_nom.getText() + "','" + txt_ape.getText() + "','" + sexo + "','" + estado + "','" + txt_ocu.getText() + "','" + txt_dir.getText() + "','" + txt_tel.getText() + "','" + txt_cel.getText() + "','" + txt_email.getText() + "','" + txt_pai.getText() + "','" + txt_pro.getText() + "','" + txt_ciu.getText() + "','" + txt_sec.getText() + "','" + fechaNac + "','" + lbl_fact.getText() + "'," + membresia + "," + 0 + "," + esProveedor + ")")) {
                    JOptionPane.showMessageDialog(this, "No se realizo la insercion otro usuario posee esta clave", "Informacion", JOptionPane.INFORMATION_MESSAGE);
                } else {

                    //conexion.insertarDatos("insert into observacion values('"+txt_cod.getText()+"','"+area.getText()+"')");
                    //Muestro en la ventana de Facturacion:
                    if (peticionDeFacturacion == true) {

                        if (bandera.equals("Facturacion")) {
                            muestraEnFacturacion(esProveedor);
                        }
                    }
                    if (bandera.equals("NotadeVenta")) {
                        muestraNotaVenta();
                    }
                    if (bandera.equals("NotaCD")) {
                        muestraNotaCD();
                    }
                    if (bandera.equals("KardexInOut") || bandera.equals("CreaProveedores")) {
                        muestraKardexInOut();
                    }
                    //cierro ventana
                    this.dispose();
                }

            } else {
                //Realizo la moficacion del Cliente si es el caso que existe:
                ////System.out.println("Aplasto Modificar");
                conexion.actualizarBase("update cliente set clave='" + clave + "',nombre='" + txt_nom.getText() + "',apellido='" + txt_ape.getText() + "',sexo='" + sexo + "',e_civil='" + estado + "',actividad='" + txt_ocu.getText() + "',direccion='" + txt_dir.getText() + "',telefono='" + txt_tel.getText() + "',celular='" + txt_cel.getText() + "',email='" + txt_email.getText() + "',pais_cli='" + txt_pai.getText() + "',prov_cli='" + txt_pro.getText() + "',ciudad_cli='" + txt_ciu.getText() + "',sector='" + txt_sec.getText() + "',fecha_nac='" + fechaNac + "',fecha_act='" + lbl_fact.getText() + "',membresia=" + membresia + ",Proveedor=" + esProveedor
                        + " where cod_cliente like '" + txt_cod.getText() + "';");
                //  conexion.insertarDatos("update observacion set observacion='"+area.getText()+"' where cod_cliente like '"+txt_cod.getText()+"';");
                //Muestro en la ventana de Facturacion:
                if (peticionDeFacturacion == true) {
                    if (bandera.equals("Facturacion")) {
                        muestraEnFacturacion(esProveedor);
                    } else if (bandera.equals("NotadeVenta")) {
                        muestraNotaVenta();
                    } else if (bandera.equals("NotaCD")) {
                        muestraNotaCD();
                    } else if (bandera.equals("KardexInOut")) {
                        muestraKardexInOut();
                    }
                }
                //cierro ventana
                this.dispose();
            }
        }

    }//GEN-LAST:event_bt_registrarActionPerformed
    public void muestraEnFacturacion(boolean esProveedor) {
        if (esProveedor) {
        } else {
            //En el caso que no sea Proveedor:
            String nombre = txt_nom.getText();
            String apellido = txt_ape.getText();
            String direccion = txt_dir.getText();
            String telefono = txt_tel.getText();
            facturaVent.txt_nom.setText(nombre + " " + apellido);
            facturaVent.txt_id.setText(txt_cod.getText());
            facturaVent.txt_dir.setText(direccion);
            facturaVent.txt_tel.setText(telefono);
        }
    }

    public void muestraNotaCD() {
        String nombre = txt_nom.getText();
        String apellido = txt_ape.getText();
        String direccion = txt_dir.getText();
        String telefono = txt_tel.getText();
        notaCD.txt_nom.setText(nombre + " " + apellido);
        notaCD.txt_id.setText(txt_cod.getText());
        notaCD.txt_dir.setText(direccion);
        notaCD.txt_tel.setText(telefono);

    }

    public void muestraKardexInOut() {
        String nombre = txt_nom.getText();
        String apellido = txt_ape.getText();
        String direccion = txt_dir.getText();
        String telefono = txt_tel.getText();
        kardexInOut.txt_nom.setText(nombre + " " + apellido);
        kardexInOut.txt_id.setText(txt_cod.getText());
        kardexInOut.txt_dir.setText(direccion);
        kardexInOut.txt_tel.setText(telefono);

    }

    public void muestraNotaVenta() {
        String nombre = txt_nom.getText();
        String apellido = txt_ape.getText();
        String direccion = txt_dir.getText();
        String telefono = txt_tel.getText();
        notaVenta.txt_nom.setText(nombre + " " + apellido);
        notaVenta.txt_id.setText(txt_cod.getText());
        notaVenta.txt_dir.setText(direccion);
        notaVenta.txt_tel.setText(telefono);

    }

    public boolean BuscaSiExiste() {
        boolean respuesta = false;
        ResultSet r;
        r = conexion.consultarBase("select * from cliente where cod_cliente like '" + txt_cod.getText() + "';");
        int filas = conexion.obtenerFilas(r);
        if (filas > 0) {
            respuesta = true;
        }
        return respuesta;
    }

    public void llenoDatosCliente() {
        ResultSet r;
        txt_cod.setEnabled(false);
        r = conexion.consultarBase("select c.* from cliente c where c.cod_cliente like '" + txt_cod.getText() + "';");
        //System.out.println("coidgo:"+txt_cod.getText());
        //r.get
        try {
            r.beforeFirst();
            while (r.next()) {
                //Nombre:
                txt_nom.setText((r.getString(3)));
                //System.out.println("Muestra Nombre");
                //Apellido:
                txt_ape.setText((r.getString(4)));
                //System.out.println("Muestra Apellido");
                //Direccion:
                txt_dir.setText((r.getString(8)));
                //System.out.println("Muestra Direccion");
                //Telefono:
                txt_tel.setText((r.getString(9)));
                //System.out.println("Muestra Telefono");
                //Clave:
                txt_clave.setText((r.getString(2)));
                //System.out.println("Muestra Clave");txt_deuda

                //Sexo:
                if (r.getObject(5).equals("masculino") || r.getObject(5).equals("null") || r.getObject(5) == null) {
                    r1.setSelected(true);
                    r2.setSelected(false);
                } else {
                    r2.setSelected(true);
                    r1.setSelected(false);
                }
                //System.out.println("Muestra Sexo");

                //e_Civil
                if (r.getObject(6).equals("soltero") || r.getObject(6).equals("null") || r.getObject(3) == null) {
                    cb_civ.setSelectedIndex(1);
                } else {
                    cb_civ.setSelectedIndex(0);
                }
                //System.out.println("Muestra ecivil");
                //Actividad:
                txt_ocu.setText((r.getString(7)));


                //Celular:
                txt_cel.setText((r.getString(10)));
                //System.out.println("Muestra Celular");
                //Email:
                txt_email.setText((r.getString(11)));
                //System.out.println("Muestra Email");
                //Pais:
                txt_pai.setText((r.getString(12)));
                //System.out.println("Muestra Pais");
                //Provincia:
                txt_pro.setText((r.getString(13)));
                //System.out.println("Muestra Provincia");
                //Ciudad:
                txt_ciu.setText((r.getString(14)));
                //System.out.println("Muestra Ciudad");
                //Sector:
                txt_sec.setText((r.getString(15)));
                //System.out.println("Muestra Sector");

                //Fecha Nacimiento:
                //Date fechaDate
                String fechaObte = r.getString(16);
                //System.out.println("Fecha N="+fechaObte);
                //String fechaObte="";
                fechaObte = fechaObte.toString();

                String[] fDiv = fechaObte.split("-");

                txt_ano.setText(fDiv[0]);
                txt_mes.setText(fDiv[1]);
                txt_dia.setText(fDiv[2]);

                //System.out.println("Muestra Fecha NAcimiento");
                //Fecha Activacion:
                lbl_fact.setText((r.getString(17)));

                muestroCuentas();



                //System.out.println("Muestra Feecha Activacion");
                //Muestro Saldo de Deudas Pendientes:
                ResultSet result = conexion.consultarBase("select sum(saldo) from separado where cod_cliente like '" + txt_cod.getText() + "';");
                result.beforeFirst();
                result.next();
                double saldo = result.getDouble(1);

                txt_sep.setText(String.valueOf(saldo));



                this.bt_cuentas.setEnabled(true);

                //Muestro si es un Proveedor Importante:
                boolean esprov = r.getBoolean(20);
                ck_proveedor.setSelected(esprov);
            }
        } catch (SQLException sqle) {
           //System.out.println("Error al mostrar los resultados de la consulta");
            System.err.println(sqle);
        }


    }

    public void muestroCuentas() {
        ResultSet res = conexion.consultarBase("SELECT sum(valor) FROM cuentaspendientes c where cod_cliente like  '" + this.txt_cod.getText() + "';");

        double separa = 0;

        try {
            res.beforeFirst();
            res.next();
            separa = res.getDouble(1);

        } catch (SQLException ex) {
            Logger.getLogger(CreaCliente.class.getName()).log(Level.SEVERE, null, ex);
        }
        double totald = separa;

        txt_deuda.setText(String.valueOf(nf.format(totald)));
    }

    public void muestroSeparaciones() {
        ResultSet res = conexion.consultarBase("SELECT sum(total) FROM separado where cod_cliente like '" + this.txt_cod.getText() + "';");
        ResultSet resp = conexion.consultarBase("SELECT sum(valor) FROM pago_separado p where cod_cliente='" + this.txt_cod.getText() + "';");
        double separa = 0;
        double abonos = 0;
        try {
            res.beforeFirst();
            res.next();
            separa = res.getDouble(1);
            resp.beforeFirst();
            resp.next();
            abonos = resp.getDouble(1);
        } catch (SQLException ex) {
            Logger.getLogger(CreaCliente.class.getName()).log(Level.SEVERE, null, ex);
        }
        double totald = separa - abonos;

        txt_sep.setText(String.valueOf(nf.format(totald)));

    }

    private void txt_anoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txt_anoActionPerformed
// TODO add your handling code here:
    }//GEN-LAST:event_txt_anoActionPerformed

    private void r1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_r1ActionPerformed
// TODO add your handling code here:
    }//GEN-LAST:event_r1ActionPerformed

private void txt_deudaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txt_deudaActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_txt_deudaActionPerformed

private void bt_cuentasActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_bt_cuentasActionPerformed
// TODO add your handling code here:
    boolean esProveedor = ck_proveedor.isSelected();
    if (esProveedor == true) {
        String codigoCliente = txt_cod.getText().toString();
        Vent_CuentasPagar vcc = new Vent_CuentasPagar(conexion, codigoCliente, this, user);
    } else {
        String codigoCliente = txt_cod.getText().toString();
        Vent_CuentasCobrar vcc = new Vent_CuentasCobrar(conexion, codigoCliente, this, user);
    }
}//GEN-LAST:event_bt_cuentasActionPerformed

private void txt_codKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txt_codKeyTyped
// TODO add your handling code here:
    int t = evt.getKeyChar();

    if (t == 10) {
        this.llenoDatosCliente();
    }
    char c = evt.getKeyChar();
    if (!(Character.isDigit(c) || (c == java.awt.event.KeyEvent.VK_BACK_SPACE) || (c == java.awt.event.KeyEvent.VK_DELETE))) {
        getToolkit().beep();
        evt.consume();

    }
    String textoV = txt_cod.getText();
    if (!(textoV.length() < 13)) {
        evt.consume();
    }

}//GEN-LAST:event_txt_codKeyTyped

private void txt_telKeyTyped(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_txt_telKeyTyped
// TODO add your handling code here:
    char c = evt.getKeyChar();
    if (!(Character.isDigit(c) || (c == java.awt.event.KeyEvent.VK_BACK_SPACE) || (c == java.awt.event.KeyEvent.VK_DELETE))) {
        getToolkit().beep();
        evt.consume();

    }
    String textoV = txt_tel.getText();

}//GEN-LAST:event_txt_telKeyTyped

private void ck_proveedorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ck_proveedorActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_ck_proveedorActionPerformed

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
    // TODO add your handling code here:

    String codigoCliente = txt_cod.getText().toString();
    Vent_Separaciones vcc = new Vent_Separaciones(conexion, codigoCliente, this, user, this.facturaVent);

}//GEN-LAST:event_jButton2ActionPerformed
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.ButtonGroup bgrupo;
    private javax.swing.JButton bt_borrar;
    private javax.swing.JButton bt_cuentas;
    private javax.swing.JButton bt_new;
    public javax.swing.JButton bt_registrar;
    private javax.swing.JComboBox cb_civ;
    private javax.swing.JCheckBox ck_proveedor;
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel14;
    private javax.swing.JLabel jLabel15;
    private javax.swing.JLabel jLabel16;
    private javax.swing.JLabel jLabel17;
    private javax.swing.JLabel jLabel19;
    private javax.swing.JLabel jLabel20;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JLabel lbl_apellido;
    private javax.swing.JLabel lbl_cedula;
    private javax.swing.JLabel lbl_direccion;
    private javax.swing.JLabel lbl_fact;
    private javax.swing.JLabel lbl_nombre;
    private javax.swing.JLabel lbl_telefono;
    private javax.swing.JRadioButton r1;
    private javax.swing.JRadioButton r2;
    private javax.swing.JTextField txt_ano;
    private javax.swing.JTextField txt_ape;
    private javax.swing.JTextField txt_cel;
    private javax.swing.JTextField txt_ciu;
    private javax.swing.JTextField txt_clave;
    public javax.swing.JTextField txt_cod;
    private javax.swing.JTextField txt_deuda;
    private javax.swing.JTextField txt_dia;
    private javax.swing.JTextField txt_dir;
    private javax.swing.JTextField txt_email;
    private javax.swing.JTextField txt_mes;
    public javax.swing.JTextField txt_nom;
    private javax.swing.JTextField txt_ocu;
    private javax.swing.JTextField txt_pai;
    private javax.swing.JTextField txt_pro;
    private javax.swing.JTextField txt_sec;
    private javax.swing.JTextField txt_sep;
    private javax.swing.JTextField txt_tel;
    // End of variables declaration//GEN-END:variables
}
